using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using JEng_Mark_1.Interfaces;

namespace JEng_Mark_1.Shaders
{
	public class lizard_xnaEffect : IJEngShader
	{
		public enum Techniques
		{
			Complete,
		}

		private Effect _baseEffect;
		///<summary>
		///Gets the underlying Effect.
		///</summary>
		public Effect BaseEffect
		{
			get { return _baseEffect; }
		}

		private bool _readyToRender = false;
		///<summary>
		///Is the shader ready to be rendered.
		///</summary>
		public bool ReadyToRender
		{
			get { return _readyToRender; }
		}

		#region Effect Parameters

		private EffectParameter _TextureMap_1392Param;
		public Texture2D TextureMap_1392
		{
			get
			{
				if (_TextureMap_1392Param == null)
					throw new Exception("Cannot get value of TextureMap_1392; TextureMap_1392 EffectParameter is null.");
				return _TextureMap_1392Param.GetValueTexture2D();
			}
			set
			{
				if (_TextureMap_1392Param == null)
					throw new Exception("Cannot set value of TextureMap_1392; TextureMap_1392 EffectParameter is null.");
				_TextureMap_1392Param.SetValue(value);
			}
		}


		private EffectParameter _UIColor_1258Param;
		public Vector3 UIColor_1258
		{
			get
			{
				if (_UIColor_1258Param == null)
					throw new Exception("Cannot get value of UIColor_1258; UIColor_1258 EffectParameter is null.");
				return _UIColor_1258Param.GetValueVector3();
			}
			set
			{
				if (_UIColor_1258Param == null)
					throw new Exception("Cannot set value of UIColor_1258; UIColor_1258 EffectParameter is null.");
				_UIColor_1258Param.SetValue(value);
			}
		}

		private EffectParameter _UIConst_8070Param;
		public float UIConst_8070
		{
			get
			{
				if (_UIConst_8070Param == null)
					throw new Exception("Cannot get value of UIConst_8070; UIConst_8070 EffectParameter is null.");
				return _UIConst_8070Param.GetValueSingle();
			}
			set
			{
				if (_UIConst_8070Param == null)
					throw new Exception("Cannot set value of UIConst_8070; UIConst_8070 EffectParameter is null.");
				_UIConst_8070Param.SetValue(value);
			}
		}

		private EffectParameter _UIConst_8690Param;
		public float UIConst_8690
		{
			get
			{
				if (_UIConst_8690Param == null)
					throw new Exception("Cannot get value of UIConst_8690; UIConst_8690 EffectParameter is null.");
				return _UIConst_8690Param.GetValueSingle();
			}
			set
			{
				if (_UIConst_8690Param == null)
					throw new Exception("Cannot set value of UIConst_8690; UIConst_8690 EffectParameter is null.");
				_UIConst_8690Param.SetValue(value);
			}
		}

		private EffectParameter _NormalMap_5989Param;
		public Texture2D NormalMap_5989
		{
			get
			{
				if (_NormalMap_5989Param == null)
					throw new Exception("Cannot get value of NormalMap_5989; NormalMap_5989 EffectParameter is null.");
				return _NormalMap_5989Param.GetValueTexture2D();
			}
			set
			{
				if (_NormalMap_5989Param == null)
					throw new Exception("Cannot set value of NormalMap_5989; NormalMap_5989 EffectParameter is null.");
				_NormalMap_5989Param.SetValue(value);
			}
		}


		private EffectParameter _light1DirParam;
		public Vector3 Light1Dir
		{
			get
			{
				if (_light1DirParam == null)
					throw new Exception("Cannot get value of Light1Dir; Light1Dir EffectParameter is null.");
				return _light1DirParam.GetValueVector3();
			}
			set
			{
				if (_light1DirParam == null)
					throw new Exception("Cannot set value of Light1Dir; Light1Dir EffectParameter is null.");
				_light1DirParam.SetValue(value);
			}
		}

		private EffectParameter _light1PosParam;
		public Vector3 Light1Pos
		{
			get
			{
				if (_light1PosParam == null)
					throw new Exception("Cannot get value of Light1Pos; Light1Pos EffectParameter is null.");
				return _light1PosParam.GetValueVector3();
			}
			set
			{
				if (_light1PosParam == null)
					throw new Exception("Cannot set value of Light1Pos; Light1Pos EffectParameter is null.");
				_light1PosParam.SetValue(value);
			}
		}

		private EffectParameter _light1ColorParam;
		public Vector4 Light1Color
		{
			get
			{
				if (_light1ColorParam == null)
					throw new Exception("Cannot get value of Light1Color; Light1Color EffectParameter is null.");
				return _light1ColorParam.GetValueVector4();
			}
			set
			{
				if (_light1ColorParam == null)
					throw new Exception("Cannot set value of Light1Color; Light1Color EffectParameter is null.");
				_light1ColorParam.SetValue(value);
			}
		}

		private EffectParameter _light1AttenuationParam;
		public Vector4 Light1Attenuation
		{
			get
			{
				if (_light1AttenuationParam == null)
					throw new Exception("Cannot get value of Light1Attenuation; Light1Attenuation EffectParameter is null.");
				return _light1AttenuationParam.GetValueVector4();
			}
			set
			{
				if (_light1AttenuationParam == null)
					throw new Exception("Cannot set value of Light1Attenuation; Light1Attenuation EffectParameter is null.");
				_light1AttenuationParam.SetValue(value);
			}
		}

		private EffectParameter _light1HotspotParam;
		public float Light1Hotspot
		{
			get
			{
				if (_light1HotspotParam == null)
					throw new Exception("Cannot get value of Light1Hotspot; Light1Hotspot EffectParameter is null.");
				return _light1HotspotParam.GetValueSingle();
			}
			set
			{
				if (_light1HotspotParam == null)
					throw new Exception("Cannot set value of Light1Hotspot; Light1Hotspot EffectParameter is null.");
				_light1HotspotParam.SetValue(value);
			}
		}

		private EffectParameter _light1FalloffParam;
		public float Light1Falloff
		{
			get
			{
				if (_light1FalloffParam == null)
					throw new Exception("Cannot get value of Light1Falloff; Light1Falloff EffectParameter is null.");
				return _light1FalloffParam.GetValueSingle();
			}
			set
			{
				if (_light1FalloffParam == null)
					throw new Exception("Cannot set value of Light1Falloff; Light1Falloff EffectParameter is null.");
				_light1FalloffParam.SetValue(value);
			}
		}

		private EffectParameter _wvpParam;
		public Matrix Wvp
		{
			get
			{
				if (_wvpParam == null)
					throw new Exception("Cannot get value of Wvp; Wvp EffectParameter is null.");
				return _wvpParam.GetValueMatrix();
			}
			set
			{
				if (_wvpParam == null)
					throw new Exception("Cannot set value of Wvp; Wvp EffectParameter is null.");
				_wvpParam.SetValue(value);
			}
		}

		private EffectParameter _worldIParam;
		public Matrix WorldI
		{
			get
			{
				if (_worldIParam == null)
					throw new Exception("Cannot get value of WorldI; WorldI EffectParameter is null.");
				return _worldIParam.GetValueMatrix();
			}
			set
			{
				if (_worldIParam == null)
					throw new Exception("Cannot set value of WorldI; WorldI EffectParameter is null.");
				_worldIParam.SetValue(value);
			}
		}

		private EffectParameter _worldITParam;
		public Matrix WorldIT
		{
			get
			{
				if (_worldITParam == null)
					throw new Exception("Cannot get value of WorldIT; WorldIT EffectParameter is null.");
				return _worldITParam.GetValueMatrix();
			}
			set
			{
				if (_worldITParam == null)
					throw new Exception("Cannot set value of WorldIT; WorldIT EffectParameter is null.");
				_worldITParam.SetValue(value);
			}
		}

		private EffectParameter _viewInvParam;
		public Matrix ViewInv
		{
			get
			{
				if (_viewInvParam == null)
					throw new Exception("Cannot get value of ViewInv; ViewInv EffectParameter is null.");
				return _viewInvParam.GetValueMatrix();
			}
			set
			{
				if (_viewInvParam == null)
					throw new Exception("Cannot set value of ViewInv; ViewInv EffectParameter is null.");
				_viewInvParam.SetValue(value);
			}
		}

		private EffectParameter _worldParam;
		public Matrix World
		{
			get
			{
				if (_worldParam == null)
					throw new Exception("Cannot get value of World; World EffectParameter is null.");
				return _worldParam.GetValueMatrix();
			}
			set
			{
				if (_worldParam == null)
					throw new Exception("Cannot set value of World; World EffectParameter is null.");
				_worldParam.SetValue(value);
			}
		}

		#endregion

		#region Effect Techniques

		private EffectTechnique _CompleteTechnique;

		#endregion

		#region Initialize Methods

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		public void Initialize(GraphicsDevice graphicsDevice)
		{
			Initialize(graphicsDevice, CompilerOptions.None, null);
		}

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice and CompilerOptions.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		///<param name="compilerOptions">The CompilerOptions to use when creating the effect.</param>
		public void Initialize(GraphicsDevice graphicsDevice, CompilerOptions compilerOptions)
		{
			Initialize(graphicsDevice, compilerOptions, null);
		}

		///<summary>
		///Initializes the Effect from byte code for the given GraphicsDevice, CompilerOptions, and EffectPool.
		///</summary
		///<param name="graphicsDevice">The GraphicsDevice for which the effect is being created.</param>
		///<param name="compilerOptions">The CompilerOptions to use when creating the effect.</param>
		///<param name="effectPools">The EffectPool to use with the effect.</param>
		public void Initialize(GraphicsDevice graphicsDevice, CompilerOptions compilerOptions, EffectPool effectPool)
		{
			_baseEffect = new Effect(graphicsDevice, byteCode, compilerOptions, effectPool);
			_readyToRender = true;

			_TextureMap_1392Param = _baseEffect.Parameters["TextureMap_1392"];
			_UIColor_1258Param = _baseEffect.Parameters["UIColor_1258"];
			_UIConst_8070Param = _baseEffect.Parameters["UIConst_8070"];
			_UIConst_8690Param = _baseEffect.Parameters["UIConst_8690"];
			_NormalMap_5989Param = _baseEffect.Parameters["NormalMap_5989"];
			_light1DirParam = _baseEffect.Parameters["light1Dir"];
			_light1PosParam = _baseEffect.Parameters["light1Pos"];
			_light1ColorParam = _baseEffect.Parameters["light1Color"];
			_light1AttenuationParam = _baseEffect.Parameters["light1Attenuation"];
			_light1HotspotParam = _baseEffect.Parameters["light1Hotspot"];
			_light1FalloffParam = _baseEffect.Parameters["light1Falloff"];
			_wvpParam = _baseEffect.Parameters["wvp"];
			_worldIParam = _baseEffect.Parameters["worldI"];
			_worldITParam = _baseEffect.Parameters["worldIT"];
			_viewInvParam = _baseEffect.Parameters["viewInv"];
			_worldParam = _baseEffect.Parameters["world"];

			_CompleteTechnique = _baseEffect.Techniques["Complete"];
		}

		#endregion

		///<summary>
		///Sets the current technique for the effect.
		///</summary>
		///<param name="technique">The technique to use for the current technique.</param>
		public void SetCurrentTechnique(lizard_xnaEffect.Techniques technique)
		{
			switch (technique)
			{
				case lizard_xnaEffect.Techniques.Complete:
					_baseEffect.CurrentTechnique = _CompleteTechnique;
					break;

			}
		}

		#region Compiled Byte Code

		#if XBOX
		static readonly byte[] byteCode = { 1,9,255,254,72,15,0,0,0,0,0,0,5,0,0,0,4,0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,78,97,109,101,0,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,4,0,0,0,4,0,0,0,4,0,0,0,132,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,84,121,112,101,0,0,0,0,16,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,0,12,0,0,0,4,0,0,0,220,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,164,0,0,0,0,1,0,0,196,0,0,0,192,0,0,0,170,0,0,0,0,1,0,0,220,0,0,0,216,0,0,0,169,0,0,0,0,1,0,0,252,0,0,0,248,0,0,0,171,0,0,0,0,1,0,0,28,1,0,0,24,1,0,0,165,0,0,0,0,1,0,0,60,1,0,0,56,1,0,0,166,0,0,0,0,1,0,0,92,1,0,0,88,1,0,0,23,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,83,97,109,112,108,101,114,0,0,3,0,0,0,1,0,0,0,108,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,6,0,0,0,4,0,0,0,4,0,0,0,56,2,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,7,0,0,0,4,0,0,0,4,0,0,0,92,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,13,0,0,0,85,73,67,111,108,111,114,95,49,50,53,56,0,0,0,0,3,0,0,0,0,0,0,0,112,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,41,92,15,62,8,0,0,0,4,0,0,0,4,0,0,0,184,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,3,0,0,0,192,121,196,3,0,0,0,0,0,0,0,232,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,105,110,0,60,0,0,192,121,68,3,0,0,0,0,0,0,0,20,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,97,120,0,60,0,205,204,204,61,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,85,73,83,116,101,112,0,0,9,0,0,0,4,0,0,0,4,0,0,0,100,3,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,13,0,0,0,85,73,67,111,110,115,116,95,56,48,55,48,0,183,217,4,3,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,32,65,10,0,0,0,4,0,0,0,4,0,0,0,188,3,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,255,255,255,0,192,121,196,3,0,0,0,0,0,0,0,236,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,105,110,0,60,0,0,192,121,68,3,0,0,0,0,0,0,0,24,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,97,120,0,60,0,205,204,204,61,3,0,0,0,0,0,0,0,68,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,85,73,83,116,101,112,0,0,11,0,0,0,4,0,0,0,4,0,0,0,104,4,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,13,0,0,0,85,73,67,111,110,115,116,95,56,54,57,48,0,0,0,0,5,0,0,0,4,0,0,0,28,5,0,0,48,5,0,0,0,0,0,0,12,0,0,0,13,0,0,0,4,0,0,0,4,0,0,0,184,4,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,78,97,109,101,0,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,228,4,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,15,0,0,0,4,0,0,0,4,0,0,0,8,5,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,84,121,112,101,0,98,106,101,15,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,0,0,10,0,0,0,78,111,114,109,97,108,77,97,112,0,0,0,12,0,0,0,4,0,0,0,112,6,0,0,0,0,0,0,0,0,0,0,16,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,164,0,0,0,0,1,0,0,88,5,0,0,84,5,0,0,170,0,0,0,0,1,0,0,112,5,0,0,108,5,0,0,169,0,0,0,0,1,0,0,144,5,0,0,140,5,0,0,171,0,0,0,0,1,0,0,176,5,0,0,172,5,0,0,165,0,0,0,0,1,0,0,208,5,0,0,204,5,0,0,166,0,0,0,0,1,0,0,240,5,0,0,236,5,0,0,22,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,83,97,109,112,108,101,114,0,0,0,3,0,0,0,1,0,0,0,76,7,0,0,92,7,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,17,0,0,0,4,0,0,0,4,0,0,0,204,6,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,18,0,0,0,4,0,0,0,4,0,0,0,240,6,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,19,0,0,0,4,0,0,0,4,0,0,0,20,7,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,60,0,1,0,0,0,2,0,0,0,0,0,0,0,64,7,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,60,0,10,0,0,0,108,105,103,104,116,49,68,105,114,0,0,0,10,0,0,0,68,105,114,101,99,116,105,111,110,0,0,0,3,0,0,0,1,0,0,0,44,8,0,0,60,8,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,20,0,0,0,4,0,0,0,4,0,0,0,172,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,21,0,0,0,4,0,0,0,4,0,0,0,208,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,22,0,0,0,4,0,0,0,4,0,0,0,244,7,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,60,0,1,0,0,0,2,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,60,0,10,0,0,0,108,105,103,104,116,49,80,111,115,0,0,0,9,0,0,0,80,79,83,73,84,73,79,78,0,0,0,0,3,0,0,0,1,0,0,0,208,8,0,0,224,8,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,152,8,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,23,0,0,0,4,0,0,0,4,0,0,0,192,8,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,12,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,11,0,0,0,76,73,71,72,84,67,79,76,79,82,0,0,3,0,0,0,1,0,0,0,116,9,0,0,140,9,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,60,9,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,24,0,0,0,4,0,0,0,4,0,0,0,100,9,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,18,0,0,0,108,105,103,104,116,49,65,116,116,101,110,117,97,116,105,111,110,0,0,0,12,0,0,0,65,116,116,101,110,117,97,116,105,111,110,0,3,0,0,0,0,0,0,0,20,10,0,0,40,10,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,44,66,1,0,0,0,2,0,0,0,0,0,0,0,220,9,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,4,10,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,72,111,116,115,112,111,116,0,0,0,8,0,0,0,72,111,116,83,112,111,116,0,3,0,0,0,0,0,0,0,172,10,0,0,192,10,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,52,66,1,0,0,0,2,0,0,0,0,0,0,0,116,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,156,10,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,70,97,108,108,111,102,102,0,0,0,8,0,0,0,70,97,108,108,79,102,102,0,3,0,0,0,2,0,0,0,80,11,0,0,88,11,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,4,0,0,0,4,0,0,0,64,11,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,4,0,0,0,119,118,112,0,20,0,0,0,87,111,114,108,100,86,105,101,119,80,114,111,106,101,99,116,105,111,110,0,3,0,0,0,2,0,0,0,244,11,0,0,0,12,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,4,0,0,0,4,0,0,0,228,11,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,7,0,0,0,119,111,114,108,100,73,0,0,13,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,0,0,0,0,3,0,0,0,2,0,0,0,152,12,0,0,164,12,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,0,4,0,0,0,4,0,0,0,136,12,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,119,111,114,108,100,73,84,0,22,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,84,114,97,110,115,112,111,115,101,0,0,0,3,0,0,0,2,0,0,0,68,13,0,0,80,13,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,4,0,0,0,4,0,0,0,52,13,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,118,105,101,119,73,110,118,0,12,0,0,0,86,105,101,119,73,110,118,101,114,115,101,0,3,0,0,0,2,0,0,0,228,13,0,0,240,13,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,4,0,0,0,4,0,0,0,212,13,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,6,0,0,0,119,111,114,108,100,0,60,0,6,0,0,0,87,111,114,108,100,0,60,0,32,0,0,0,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,33,0,0,0,15,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,108,105,103,104,116,49,0,0,9,0,0,0,67,111,109,112,108,101,116,101,0,0,14,0,18,0,0,0,1,0,0,0,5,0,0,0,34,0,0,0,4,0,0,0,24,0,0,0,0,0,0,0,3,0,0,0,32,0,0,0,28,0,0,0,76,0,0,0,72,0,0,0,112,0,0,0,108,0,0,0,172,0,0,0,120,1,0,0,0,0,0,0,0,0,0,0,248,1,0,0,20,2,0,0,0,0,0,0,2,0,0,0,36,2,0,0,32,2,0,0,72,2,0,0,68,2,0,0,128,2,0,0,156,2,0,0,0,0,0,0,5,0,0,0,164,2,0,0,160,2,0,0,204,2,0,0,200,2,0,0,248,2,0,0,244,2,0,0,36,3,0,0,32,3,0,0,80,3,0,0,76,3,0,0,132,3,0,0,160,3,0,0,0,0,0,0,5,0,0,0,168,3,0,0,164,3,0,0,208,3,0,0,204,3,0,0,252,3,0,0,248,3,0,0,40,4,0,0,36,4,0,0,84,4,0,0,80,4,0,0,136,4,0,0,156,4,0,0,0,0,0,0,3,0,0,0,164,4,0,0,160,4,0,0,208,4,0,0,204,4,0,0,244,4,0,0,240,4,0,0,64,5,0,0,12,6,0,0,0,0,0,0,0,0,0,0,140,6,0,0,168,6,0,0,0,0,0,0,4,0,0,0,184,6,0,0,180,6,0,0,220,6,0,0,216,6,0,0,0,7,0,0,252,6,0,0,36,7,0,0,32,7,0,0,108,7,0,0,136,7,0,0,0,0,0,0,4,0,0,0,152,7,0,0,148,7,0,0,188,7,0,0,184,7,0,0,224,7,0,0,220,7,0,0,4,8,0,0,0,8,0,0,76,8,0,0,104,8,0,0,0,0,0,0,2,0,0,0,124,8,0,0,120,8,0,0,172,8,0,0,168,8,0,0,240,8,0,0,12,9,0,0,0,0,0,0,2,0,0,0,32,9,0,0,28,9,0,0,80,9,0,0,76,9,0,0,156,9,0,0,184,9,0,0,0,0,0,0,2,0,0,0,192,9,0,0,188,9,0,0,240,9,0,0,236,9,0,0,52,10,0,0,80,10,0,0,0,0,0,0,2,0,0,0,88,10,0,0,84,10,0,0,136,10,0,0,132,10,0,0,204,10,0,0,232,10,0,0,0,0,0,0,1,0,0,0,44,11,0,0,40,11,0,0,112,11,0,0,140,11,0,0,0,0,0,0,1,0,0,0,208,11,0,0,204,11,0,0,20,12,0,0,48,12,0,0,0,0,0,0,1,0,0,0,116,12,0,0,112,12,0,0,192,12,0,0,220,12,0,0,0,0,0,0,1,0,0,0,32,13,0,0,28,13,0,0,96,13,0,0,124,13,0,0,0,0,0,0,1,0,0,0,192,13,0,0,188,13,0,0,56,15,0,0,0,0,0,0,1,0,0,0,44,15,0,0,0,0,0,0,10,0,0,0,146,0,0,0,0,0,0,0,0,14,0,0,252,13,0,0,0,0,0,0,0,0,0,0,24,14,0,0,20,14,0,0,8,0,0,0,0,0,0,0,56,14,0,0,52,14,0,0,2,0,0,0,0,0,0,0,88,14,0,0,84,14,0,0,3,0,0,0,0,0,0,0,120,14,0,0,116,14,0,0,13,0,0,0,0,0,0,0,152,14,0,0,148,14,0,0,6,0,0,0,0,0,0,0,184,14,0,0,180,14,0,0,7,0,0,0,0,0,0,0,216,14,0,0,212,14,0,0,4,0,0,0,0,0,0,0,248,14,0,0,244,14,0,0,147,0,0,0,0,0,0,0,24,15,0,0,20,15,0,0,29,0,0,0,4,0,0,0,31,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,30,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,29,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,28,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,27,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,26,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,25,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,24,0,0,0,5,0,0,0,78,111,110,101,0,4,60,0,23,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,22,0,0,0,6,0,0,0,87,111,114,108,100,0,60,0,21,0,0,0,11,0,0,0,80,111,105,110,116,76,105,103,104,116,0,0,20,0,0,0,17,0,0,0,76,105,103,104,116,32,49,32,80,111,115,105,116,105,111,110,0,111,110,0,19,0,0,0,6,0,0,0,87,111,114,108,100,0,60,0,18,0,0,0,12,0,0,0,84,97,114,103,101,116,76,105,103,104,116,0,17,0,0,0,18,0,0,0,76,105,103,104,116,32,49,32,68,105,114,101,99,116,105,111,110,0,0,0,12,0,0,0,0,0,0,0,15,0,0,0,3,0,0,0,50,68,0,4,14,0,0,0,11,0,0,0,78,111,114,109,97,108,32,77,97,112,0,0,13,0,0,0,16,0,0,0,108,105,122,97,114,100,95,110,111,114,109,46,116,103,97,0,11,0,0,0,9,0,0,0,67,111,110,115,116,97,110,116,0,0,0,0,10,0,0,0,8,0,0,0,83,112,105,110,110,101,114,0,9,0,0,0,9,0,0,0,67,111,110,115,116,97,110,116,0,0,0,0,8,0,0,0,8,0,0,0,83,112,105,110,110,101,114,0,7,0,0,0,6,0,0,0,67,111,108,111,114,0,60,0,6,0,0,0,6,0,0,0,67,111,108,111,114,0,60,0,1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,50,68,0,4,3,0,0,0,12,0,0,0,84,101,120,116,117,114,101,32,77,97,112,0,2,0,0,0,16,0,0,0,108,105,122,97,114,100,95,100,105,102,102,46,116,103,97,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,0,0,0,0,28,4,0,0,0,2,255,255,254,255,81,0,67,84,65,66,28,0,0,0,11,1,0,0,0,2,255,255,4,0,0,0,28,0,0,0,0,0,0,0,4,1,0,0,108,0,0,0,3,0,1,0,1,0,0,0,132,0,0,0,0,0,0,0,148,0,0,0,3,0,0,0,1,0,0,0,132,0,0,0,0,0,0,0,171,0,0,0,2,0,0,0,1,0,0,0,184,0,0,0,200,0,0,0,216,0,0,0,2,0,1,0,1,0,0,0,228,0,0,0,244,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,83,97,109,112,108,101,114,0,171,171,4,0,12,0,1,0,1,0,1,0,0,0,0,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,83,97,109,112,108,101,114,0,85,73,67,111,110,115,116,95,56,54,57,48,0,0,0,3,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,32,65,0,0,0,0,0,0,0,0,0,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,1,0,3,0,1,0,4,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,112,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,92,0,80,82,69,83,1,2,88,70,254,255,56,0,67,84,65,66,28,0,0,0,167,0,0,0,1,2,88,70,2,0,0,0,28,0,0,0,0,1,0,0,164,0,0,0,68,0,0,0,2,0,0,0,1,0,0,0,84,0,0,0,100,0,0,0,116,0,0,0,2,0,1,0,1,0,0,0,132,0,0,0,148,0,0,0,85,73,67,111,108,111,114,95,49,50,53,56,0,171,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,0,85,73,67,111,110,115,116,95,56,48,55,48,0,171,171,171,0,0,3,0,1,0,1,0,1,0,0,0,0,0,0,0,41,92,15,62,0,0,0,0,0,0,0,0,0,0,0,0,116,120,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,12,0,80,82,83,73,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,2,0,67,76,73,84,0,0,0,0,254,255,15,0,70,88,76,67,1,0,0,0,3,0,80,160,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,240,240,240,240,15,15,15,15,255,255,0,0,81,0,0,5,3,0,15,160,0,0,0,64,0,0,128,191,0,0,128,63,0,0,0,0,31,0,0,2,0,0,0,128,0,0,7,176,31,0,0,2,0,0,0,128,1,0,7,176,31,0,0,2,0,0,0,128,2,0,3,176,31,0,0,2,0,0,0,144,0,8,15,160,31,0,0,2,0,0,0,144,1,8,15,160,66,0,0,3,1,0,15,128,2,0,228,176,1,8,228,160,66,0,0,3,0,0,15,128,2,0,228,176,0,8,228,160,8,0,0,3,2,0,1,128,1,0,228,176,1,0,228,176,7,0,0,2,0,0,8,128,2,0,0,128,36,0,0,2,2,0,7,128,0,0,228,176,4,0,0,4,4,0,7,128,1,0,228,176,0,0,255,128,2,0,228,128,36,0,0,2,3,0,7,128,4,0,228,128,4,0,0,4,4,0,7,128,3,0,0,160,1,0,228,128,3,0,85,160,36,0,0,2,1,0,7,128,4,0,228,128,8,0,0,3,3,0,17,128,1,0,228,128,3,0,228,128,8,0,0,3,1,0,17,128,1,0,228,128,2,0,228,128,32,0,0,3,0,0,8,128,3,0,0,128,0,0,0,160,5,0,0,3,0,0,7,128,0,0,228,128,1,0,0,128,4,0,0,4,0,0,7,128,2,0,228,160,0,0,255,128,0,0,228,128,5,0,0,3,0,0,7,128,0,0,228,128,1,0,228,160,1,0,0,2,0,0,8,128,3,0,170,160,1,0,0,2,0,8,15,128,0,0,228,128,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,244,4,0,0,0,2,254,255,254,255,78,0,67,84,65,66,28,0,0,0,2,1,0,0,0,2,254,255,4,0,0,0,28,0,0,0,0,0,0,0,251,0,0,0,108,0,0,0,2,0,10,0,1,0,0,0,120,0,0,0,136,0,0,0,152,0,0,0,2,0,7,0,3,0,0,0,160,0,0,0,176,0,0,0,240,0,0,0,2,0,4,0,3,0,0,0,160,0,0,0,176,0,0,0,247,0,0,0,2,0,0,0,4,0,0,0,160,0,0,0,176,0,0,0,108,105,103,104,116,49,80,111,115,0,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,0,0,0,0,119,111,114,108,100,0,171,171,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,119,118,112,0,118,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,145,0,80,82,69,83,1,2,88,70,254,255,55,0,67,84,65,66,28,0,0,0,166,0,0,0,1,2,88,70,2,0,0,0,28,0,0,0,0,1,0,0,163,0,0,0,68,0,0,0,2,0,0,0,4,0,0,0,76,0,0,0,92,0,0,0,156,0,0,0,2,0,4,0,3,0,0,0,76,0,0,0,92,0,0,0,118,105,101,119,73,110,118,0,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,116,120,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,12,0,80,82,83,73,11,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,2,0,67,76,73,84,0,0,0,0,254,255,69,0,70,88,76,67,7,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,1,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,16,0,0,0,0,0,0,0,4,0,0,0,44,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,20,0,0,0,0,0,0,0,4,0,0,0,45,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,24,0,0,0,0,0,0,0,4,0,0,0,46,0,0,0,240,240,240,240,15,15,15,15,255,255,0,0,31,0,0,2,0,0,0,128,0,0,15,144,31,0,0,2,6,0,0,128,1,0,15,144,31,0,0,2,7,0,0,128,2,0,15,144,31,0,0,2,3,0,0,128,3,0,15,144,31,0,0,2,5,0,0,128,4,0,15,144,9,0,0,3,0,0,1,128,0,0,228,144,7,0,228,160,9,0,0,3,0,0,2,128,0,0,228,144,8,0,228,160,9,0,0,3,0,0,4,128,0,0,228,144,9,0,228,160,2,0,0,3,1,0,7,128,0,0,228,129,10,0,228,160,8,0,0,3,0,0,1,128,1,0,228,128,4,0,228,160,8,0,0,3,0,0,2,128,1,0,228,128,5,0,228,160,8,0,0,3,0,0,4,128,1,0,228,128,6,0,228,160,8,0,0,3,0,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,0,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,0,0,4,224,3,0,228,144,0,0,228,128,2,0,0,3,0,0,7,128,0,0,228,145,11,0,228,160,8,0,0,3,1,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,1,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,1,0,4,224,3,0,228,144,0,0,228,128,9,0,0,3,0,0,1,192,0,0,228,144,0,0,228,160,9,0,0,3,0,0,2,192,0,0,228,144,1,0,228,160,9,0,0,3,0,0,4,192,0,0,228,144,2,0,228,160,9,0,0,3,0,0,8,192,0,0,228,144,3,0,228,160,1,0,0,2,2,0,3,224,4,0,228,144,255,255,0,0,255,255,255,255,6,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,0,4,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,16,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,0, };
		#else
		static readonly byte[] byteCode = { 1,9,255,254,72,15,0,0,0,0,0,0,5,0,0,0,4,0,0,0,152,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,4,0,0,0,52,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,78,97,109,101,0,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,4,0,0,0,4,0,0,0,4,0,0,0,132,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,84,121,112,101,0,0,0,0,16,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,0,12,0,0,0,4,0,0,0,220,1,0,0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,164,0,0,0,0,1,0,0,196,0,0,0,192,0,0,0,170,0,0,0,0,1,0,0,220,0,0,0,216,0,0,0,169,0,0,0,0,1,0,0,252,0,0,0,248,0,0,0,171,0,0,0,0,1,0,0,28,1,0,0,24,1,0,0,165,0,0,0,0,1,0,0,60,1,0,0,56,1,0,0,166,0,0,0,0,1,0,0,92,1,0,0,88,1,0,0,23,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,83,97,109,112,108,101,114,0,0,3,0,0,0,1,0,0,0,108,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,6,0,0,0,4,0,0,0,4,0,0,0,56,2,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,7,0,0,0,4,0,0,0,4,0,0,0,92,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,13,0,0,0,85,73,67,111,108,111,114,95,49,50,53,56,0,0,0,0,3,0,0,0,0,0,0,0,112,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,41,92,15,62,8,0,0,0,4,0,0,0,4,0,0,0,184,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,0,192,121,196,3,0,0,0,0,0,0,0,232,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,105,110,0,60,0,0,192,121,68,3,0,0,0,0,0,0,0,20,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,97,120,0,60,0,205,204,204,61,3,0,0,0,0,0,0,0,64,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,85,73,83,116,101,112,0,0,9,0,0,0,4,0,0,0,4,0,0,0,100,3,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,13,0,0,0,85,73,67,111,110,115,116,95,56,48,55,48,0,0,0,0,3,0,0,0,0,0,0,0,116,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,32,65,10,0,0,0,4,0,0,0,4,0,0,0,188,3,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,0,192,121,196,3,0,0,0,0,0,0,0,236,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,105,110,0,60,0,0,192,121,68,3,0,0,0,0,0,0,0,24,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,85,73,77,97,120,0,60,0,205,204,204,61,3,0,0,0,0,0,0,0,68,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,85,73,83,116,101,112,0,0,11,0,0,0,4,0,0,0,4,0,0,0,104,4,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,13,0,0,0,85,73,67,111,110,115,116,95,56,54,57,48,0,0,0,0,5,0,0,0,4,0,0,0,28,5,0,0,48,5,0,0,0,0,0,0,12,0,0,0,13,0,0,0,4,0,0,0,4,0,0,0,184,4,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,78,97,109,101,0,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,228,4,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,15,0,0,0,4,0,0,0,4,0,0,0,8,5,0,0,0,0,0,0,0,0,0,0,13,0,0,0,82,101,115,111,117,114,99,101,84,121,112,101,0,0,0,0,15,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,0,0,10,0,0,0,78,111,114,109,97,108,77,97,112,0,0,0,12,0,0,0,4,0,0,0,112,6,0,0,0,0,0,0,0,0,0,0,16,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,164,0,0,0,0,1,0,0,88,5,0,0,84,5,0,0,170,0,0,0,0,1,0,0,112,5,0,0,108,5,0,0,169,0,0,0,0,1,0,0,144,5,0,0,140,5,0,0,171,0,0,0,0,1,0,0,176,5,0,0,172,5,0,0,165,0,0,0,0,1,0,0,208,5,0,0,204,5,0,0,166,0,0,0,0,1,0,0,240,5,0,0,236,5,0,0,22,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,83,97,109,112,108,101,114,0,0,0,3,0,0,0,1,0,0,0,76,7,0,0,92,7,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,17,0,0,0,4,0,0,0,4,0,0,0,204,6,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,18,0,0,0,4,0,0,0,4,0,0,0,240,6,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,19,0,0,0,4,0,0,0,4,0,0,0,20,7,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,60,0,1,0,0,0,2,0,0,0,0,0,0,0,64,7,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,60,0,10,0,0,0,108,105,103,104,116,49,68,105,114,0,0,0,10,0,0,0,68,105,114,101,99,116,105,111,110,0,0,0,3,0,0,0,1,0,0,0,44,8,0,0,60,8,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,20,0,0,0,4,0,0,0,4,0,0,0,172,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,85,73,78,97,109,101,0,0,21,0,0,0,4,0,0,0,4,0,0,0,208,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,79,98,106,101,99,116,0,0,22,0,0,0,4,0,0,0,4,0,0,0,244,7,0,0,0,0,0,0,0,0,0,0,6,0,0,0,83,112,97,99,101,0,60,0,1,0,0,0,2,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,114,101,102,73,68,0,60,0,10,0,0,0,108,105,103,104,116,49,80,111,115,0,0,0,9,0,0,0,80,79,83,73,84,73,79,78,0,0,0,0,3,0,0,0,1,0,0,0,208,8,0,0,224,8,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,152,8,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,23,0,0,0,4,0,0,0,4,0,0,0,192,8,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,12,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,11,0,0,0,76,73,71,72,84,67,79,76,79,82,0,0,3,0,0,0,1,0,0,0,116,9,0,0,140,9,0,0,0,0,0,0,4,0,0,0,1,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,1,0,0,0,2,0,0,0,0,0,0,0,60,9,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,24,0,0,0,4,0,0,0,4,0,0,0,100,9,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,18,0,0,0,108,105,103,104,116,49,65,116,116,101,110,117,97,116,105,111,110,0,0,0,12,0,0,0,65,116,116,101,110,117,97,116,105,111,110,0,3,0,0,0,0,0,0,0,20,10,0,0,40,10,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,44,66,1,0,0,0,2,0,0,0,0,0,0,0,220,9,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,25,0,0,0,4,0,0,0,4,0,0,0,4,10,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,72,111,116,115,112,111,116,0,0,0,8,0,0,0,72,111,116,83,112,111,116,0,3,0,0,0,0,0,0,0,172,10,0,0,192,10,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,52,66,1,0,0,0,2,0,0,0,0,0,0,0,116,10,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,9,0,0,0,76,105,103,104,116,82,101,102,0,0,0,0,26,0,0,0,4,0,0,0,4,0,0,0,156,10,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,14,0,0,0,108,105,103,104,116,49,70,97,108,108,111,102,102,0,0,0,8,0,0,0,70,97,108,108,79,102,102,0,3,0,0,0,2,0,0,0,80,11,0,0,88,11,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,0,0,4,0,0,0,4,0,0,0,64,11,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,4,0,0,0,119,118,112,0,20,0,0,0,87,111,114,108,100,86,105,101,119,80,114,111,106,101,99,116,105,111,110,0,3,0,0,0,2,0,0,0,244,11,0,0,0,12,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,4,0,0,0,4,0,0,0,228,11,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,7,0,0,0,119,111,114,108,100,73,0,0,13,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,0,0,0,0,3,0,0,0,2,0,0,0,152,12,0,0,164,12,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,0,4,0,0,0,4,0,0,0,136,12,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,119,111,114,108,100,73,84,0,22,0,0,0,87,111,114,108,100,73,110,118,101,114,115,101,84,114,97,110,115,112,111,115,101,0,0,0,3,0,0,0,2,0,0,0,68,13,0,0,80,13,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,0,4,0,0,0,4,0,0,0,52,13,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,8,0,0,0,118,105,101,119,73,110,118,0,12,0,0,0,86,105,101,119,73,110,118,101,114,115,101,0,3,0,0,0,2,0,0,0,228,13,0,0,240,13,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,4,0,0,0,4,0,0,0,212,13,0,0,0,0,0,0,0,0,0,0,9,0,0,0,85,73,87,105,100,103,101,116,0,0,0,0,6,0,0,0,119,111,114,108,100,0,60,0,6,0,0,0,87,111,114,108,100,0,60,0,32,0,0,0,16,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,33,0,0,0,15,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,108,105,103,104,116,49,0,0,9,0,0,0,67,111,109,112,108,101,116,101,0,0,14,0,18,0,0,0,1,0,0,0,5,0,0,0,34,0,0,0,4,0,0,0,24,0,0,0,0,0,0,0,3,0,0,0,32,0,0,0,28,0,0,0,76,0,0,0,72,0,0,0,112,0,0,0,108,0,0,0,172,0,0,0,120,1,0,0,0,0,0,0,0,0,0,0,248,1,0,0,20,2,0,0,0,0,0,0,2,0,0,0,36,2,0,0,32,2,0,0,72,2,0,0,68,2,0,0,128,2,0,0,156,2,0,0,0,0,0,0,5,0,0,0,164,2,0,0,160,2,0,0,204,2,0,0,200,2,0,0,248,2,0,0,244,2,0,0,36,3,0,0,32,3,0,0,80,3,0,0,76,3,0,0,132,3,0,0,160,3,0,0,0,0,0,0,5,0,0,0,168,3,0,0,164,3,0,0,208,3,0,0,204,3,0,0,252,3,0,0,248,3,0,0,40,4,0,0,36,4,0,0,84,4,0,0,80,4,0,0,136,4,0,0,156,4,0,0,0,0,0,0,3,0,0,0,164,4,0,0,160,4,0,0,208,4,0,0,204,4,0,0,244,4,0,0,240,4,0,0,64,5,0,0,12,6,0,0,0,0,0,0,0,0,0,0,140,6,0,0,168,6,0,0,0,0,0,0,4,0,0,0,184,6,0,0,180,6,0,0,220,6,0,0,216,6,0,0,0,7,0,0,252,6,0,0,36,7,0,0,32,7,0,0,108,7,0,0,136,7,0,0,0,0,0,0,4,0,0,0,152,7,0,0,148,7,0,0,188,7,0,0,184,7,0,0,224,7,0,0,220,7,0,0,4,8,0,0,0,8,0,0,76,8,0,0,104,8,0,0,0,0,0,0,2,0,0,0,124,8,0,0,120,8,0,0,172,8,0,0,168,8,0,0,240,8,0,0,12,9,0,0,0,0,0,0,2,0,0,0,32,9,0,0,28,9,0,0,80,9,0,0,76,9,0,0,156,9,0,0,184,9,0,0,0,0,0,0,2,0,0,0,192,9,0,0,188,9,0,0,240,9,0,0,236,9,0,0,52,10,0,0,80,10,0,0,0,0,0,0,2,0,0,0,88,10,0,0,84,10,0,0,136,10,0,0,132,10,0,0,204,10,0,0,232,10,0,0,0,0,0,0,1,0,0,0,44,11,0,0,40,11,0,0,112,11,0,0,140,11,0,0,0,0,0,0,1,0,0,0,208,11,0,0,204,11,0,0,20,12,0,0,48,12,0,0,0,0,0,0,1,0,0,0,116,12,0,0,112,12,0,0,192,12,0,0,220,12,0,0,0,0,0,0,1,0,0,0,32,13,0,0,28,13,0,0,96,13,0,0,124,13,0,0,0,0,0,0,1,0,0,0,192,13,0,0,188,13,0,0,56,15,0,0,0,0,0,0,1,0,0,0,44,15,0,0,0,0,0,0,10,0,0,0,146,0,0,0,0,0,0,0,0,14,0,0,252,13,0,0,0,0,0,0,0,0,0,0,24,14,0,0,20,14,0,0,8,0,0,0,0,0,0,0,56,14,0,0,52,14,0,0,2,0,0,0,0,0,0,0,88,14,0,0,84,14,0,0,3,0,0,0,0,0,0,0,120,14,0,0,116,14,0,0,13,0,0,0,0,0,0,0,152,14,0,0,148,14,0,0,6,0,0,0,0,0,0,0,184,14,0,0,180,14,0,0,7,0,0,0,0,0,0,0,216,14,0,0,212,14,0,0,4,0,0,0,0,0,0,0,248,14,0,0,244,14,0,0,147,0,0,0,0,0,0,0,24,15,0,0,20,15,0,0,29,0,0,0,4,0,0,0,31,0,0,0,5,0,0,0,78,111,110,101,0,2,60,0,30,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,29,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,28,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,27,0,0,0,5,0,0,0,78,111,110,101,0,4,60,0,26,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,25,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,24,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,23,0,0,0,5,0,0,0,78,111,110,101,0,1,60,0,22,0,0,0,6,0,0,0,87,111,114,108,100,0,60,0,21,0,0,0,11,0,0,0,80,111,105,110,116,76,105,103,104,116,0,0,20,0,0,0,17,0,0,0,76,105,103,104,116,32,49,32,80,111,115,105,116,105,111,110,0,0,0,0,19,0,0,0,6,0,0,0,87,111,114,108,100,0,60,0,18,0,0,0,12,0,0,0,84,97,114,103,101,116,76,105,103,104,116,0,17,0,0,0,18,0,0,0,76,105,103,104,116,32,49,32,68,105,114,101,99,116,105,111,110,0,0,0,12,0,0,0,0,0,0,0,15,0,0,0,3,0,0,0,50,68,0,4,14,0,0,0,11,0,0,0,78,111,114,109,97,108,32,77,97,112,0,101,13,0,0,0,16,0,0,0,108,105,122,97,114,100,95,110,111,114,109,46,116,103,97,0,11,0,0,0,9,0,0,0,67,111,110,115,116,97,110,116,0,0,2,0,10,0,0,0,8,0,0,0,83,112,105,110,110,101,114,0,9,0,0,0,9,0,0,0,67,111,110,115,116,97,110,116,0,0,0,0,8,0,0,0,8,0,0,0,83,112,105,110,110,101,114,0,7,0,0,0,6,0,0,0,67,111,108,111,114,0,60,0,6,0,0,0,6,0,0,0,67,111,108,111,114,0,60,0,1,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,50,68,0,0,3,0,0,0,12,0,0,0,84,101,120,116,117,114,101,32,77,97,112,0,2,0,0,0,16,0,0,0,108,105,122,97,114,100,95,100,105,102,102,46,116,103,97,0,0,0,0,0,0,0,0,0,255,255,255,255,9,0,0,0,0,0,0,0,28,4,0,0,0,2,255,255,254,255,81,0,67,84,65,66,28,0,0,0,11,1,0,0,0,2,255,255,4,0,0,0,28,0,0,0,0,0,0,0,4,1,0,0,108,0,0,0,3,0,1,0,1,0,0,0,132,0,0,0,0,0,0,0,148,0,0,0,3,0,0,0,1,0,0,0,132,0,0,0,0,0,0,0,171,0,0,0,2,0,0,0,1,0,0,0,184,0,0,0,200,0,0,0,216,0,0,0,2,0,1,0,1,0,0,0,228,0,0,0,244,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,83,97,109,112,108,101,114,0,171,171,4,0,12,0,1,0,1,0,1,0,0,0,0,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,83,97,109,112,108,101,114,0,85,73,67,111,110,115,116,95,56,54,57,48,0,0,0,3,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,32,65,0,0,0,0,0,0,0,0,0,0,0,0,108,105,103,104,116,49,67,111,108,111,114,0,1,0,3,0,1,0,4,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,112,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,92,0,80,82,69,83,1,2,88,70,254,255,56,0,67,84,65,66,28,0,0,0,167,0,0,0,1,2,88,70,2,0,0,0,28,0,0,0,0,1,0,0,164,0,0,0,68,0,0,0,2,0,0,0,1,0,0,0,84,0,0,0,100,0,0,0,116,0,0,0,2,0,1,0,1,0,0,0,132,0,0,0,148,0,0,0,85,73,67,111,108,111,114,95,49,50,53,56,0,171,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,0,85,73,67,111,110,115,116,95,56,48,55,48,0,171,171,171,0,0,3,0,1,0,1,0,1,0,0,0,0,0,0,0,41,92,15,62,0,0,0,0,0,0,0,0,0,0,0,0,116,120,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,171,171,171,254,255,12,0,80,82,83,73,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,2,0,67,76,73,84,0,0,0,0,254,255,15,0,70,88,76,67,1,0,0,0,3,0,80,160,2,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,240,240,240,240,15,15,15,15,255,255,0,0,81,0,0,5,3,0,15,160,0,0,0,64,0,0,128,191,0,0,128,63,0,0,0,0,31,0,0,2,0,0,0,128,0,0,7,176,31,0,0,2,0,0,0,128,1,0,7,176,31,0,0,2,0,0,0,128,2,0,3,176,31,0,0,2,0,0,0,144,0,8,15,160,31,0,0,2,0,0,0,144,1,8,15,160,66,0,0,3,1,0,15,128,2,0,228,176,1,8,228,160,66,0,0,3,0,0,15,128,2,0,228,176,0,8,228,160,8,0,0,3,2,0,1,128,1,0,228,176,1,0,228,176,7,0,0,2,0,0,8,128,2,0,0,128,36,0,0,2,2,0,7,128,0,0,228,176,4,0,0,4,4,0,7,128,1,0,228,176,0,0,255,128,2,0,228,128,36,0,0,2,3,0,7,128,4,0,228,128,4,0,0,4,4,0,7,128,3,0,0,160,1,0,228,128,3,0,85,160,36,0,0,2,1,0,7,128,4,0,228,128,8,0,0,3,3,0,17,128,1,0,228,128,3,0,228,128,8,0,0,3,1,0,17,128,1,0,228,128,2,0,228,128,32,0,0,3,0,0,8,128,3,0,0,128,0,0,0,160,5,0,0,3,0,0,7,128,0,0,228,128,1,0,0,128,4,0,0,4,0,0,7,128,2,0,228,160,0,0,255,128,0,0,228,128,5,0,0,3,0,0,7,128,0,0,228,128,1,0,228,160,1,0,0,2,0,0,8,128,3,0,170,160,1,0,0,2,0,8,15,128,0,0,228,128,255,255,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,244,4,0,0,0,2,254,255,254,255,78,0,67,84,65,66,28,0,0,0,2,1,0,0,0,2,254,255,4,0,0,0,28,0,0,0,0,0,0,0,251,0,0,0,108,0,0,0,2,0,10,0,1,0,0,0,120,0,0,0,136,0,0,0,152,0,0,0,2,0,7,0,3,0,0,0,160,0,0,0,176,0,0,0,240,0,0,0,2,0,4,0,3,0,0,0,160,0,0,0,176,0,0,0,247,0,0,0,2,0,0,0,4,0,0,0,160,0,0,0,176,0,0,0,108,105,103,104,116,49,80,111,115,0,171,171,1,0,3,0,1,0,3,0,1,0,0,0,0,0,0,0,0,0,200,66,0,0,200,66,0,0,200,66,0,0,0,0,119,111,114,108,100,0,171,171,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,119,118,112,0,118,115,95,50,95,48,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,145,0,80,82,69,83,1,2,88,70,254,255,55,0,67,84,65,66,28,0,0,0,166,0,0,0,1,2,88,70,2,0,0,0,28,0,0,0,0,1,0,0,163,0,0,0,68,0,0,0,2,0,0,0,4,0,0,0,76,0,0,0,92,0,0,0,156,0,0,0,2,0,4,0,3,0,0,0,76,0,0,0,92,0,0,0,118,105,101,119,73,110,118,0,3,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,111,114,108,100,73,0,116,120,0,77,105,99,114,111,115,111,102,116,32,40,82,41,32,68,51,68,88,57,32,83,104,97,100,101,114,32,67,111,109,112,105,108,101,114,32,57,46,49,53,46,55,55,57,46,48,48,48,48,0,254,255,12,0,80,82,83,73,11,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,254,255,2,0,67,76,73,84,0,0,0,0,254,255,69,0,70,88,76,67,7,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,7,0,0,0,0,0,0,0,7,0,0,0,1,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,0,0,0,0,7,0,0,0,2,0,0,0,1,0,0,16,1,0,0,0,0,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,16,0,0,0,0,0,0,0,4,0,0,0,44,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,20,0,0,0,0,0,0,0,4,0,0,0,45,0,0,0,4,0,0,80,2,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,24,0,0,0,0,0,0,0,4,0,0,0,46,0,0,0,240,240,240,240,15,15,15,15,255,255,0,0,31,0,0,2,0,0,0,128,0,0,15,144,31,0,0,2,6,0,0,128,1,0,15,144,31,0,0,2,7,0,0,128,2,0,15,144,31,0,0,2,3,0,0,128,3,0,15,144,31,0,0,2,5,0,0,128,4,0,15,144,9,0,0,3,0,0,1,128,0,0,228,144,7,0,228,160,9,0,0,3,0,0,2,128,0,0,228,144,8,0,228,160,9,0,0,3,0,0,4,128,0,0,228,144,9,0,228,160,2,0,0,3,1,0,7,128,0,0,228,129,10,0,228,160,8,0,0,3,0,0,1,128,1,0,228,128,4,0,228,160,8,0,0,3,0,0,2,128,1,0,228,128,5,0,228,160,8,0,0,3,0,0,4,128,1,0,228,128,6,0,228,160,8,0,0,3,0,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,0,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,0,0,4,224,3,0,228,144,0,0,228,128,2,0,0,3,0,0,7,128,0,0,228,145,11,0,228,160,8,0,0,3,1,0,1,224,1,0,228,144,0,0,228,128,8,0,0,3,1,0,2,224,2,0,228,145,0,0,228,128,8,0,0,3,1,0,4,224,3,0,228,144,0,0,228,128,9,0,0,3,0,0,1,192,0,0,228,144,0,0,228,160,9,0,0,3,0,0,2,192,0,0,228,144,1,0,228,160,9,0,0,3,0,0,4,192,0,0,228,144,2,0,228,160,9,0,0,3,0,0,8,192,0,0,228,144,3,0,228,160,1,0,0,2,2,0,3,224,4,0,228,144,255,255,0,0,255,255,255,255,6,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,78,111,114,109,97,108,77,97,112,95,53,57,56,57,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,16,0,0,0,84,101,120,116,117,114,101,77,97,112,95,49,51,57,50,0, };
		#endif

		#endregion
	}
}
